<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <h2>工厂模式创建对象</h2>
    <p>主要使用object对象创建
        在javascript中，几乎所有的对象都是object类型的实例
    object构造函数创建一个对象包装器
object构造函数会根据给定的参数创建对象
    </p>
    <ul>
        <li>如果给定值为null或underfined 将会创建空对象</li>
        <li>如果传进来的是一个基本类型的值 将会构造其包装类型的对象</li>
        <li>
            如果传进来的是引用类型的值 则会返回整个值 经过他们复制遍历保有源对象相同的引用地址
        </li>
        <li>当一飞构造函数形式被调用 object的行为扥同于new object</li>
    </ul>
    <script>
        //定义user
        function creatUser(){
            //创建object对象
            var obj = new Object();
            //使用object属性初始化
            obj.name='tom';
            obj.age=12;
            obj.study=function(){
                console.log(this.name+'今年'+this.age+'岁');
            }
            return obj;
        }
        //创建user对象
        var user=creatUser();
        user.name='jack';
        user.age=22;
        user.study();


        function creatCar(){
            //创建object对象
            var obj = new Object();
            //使用object属性初始化
            obj.ground='宝马';
            obj.size='xxxxx';
            obj.color='blue';
            obj.start=function(){
                console.log(this.ground+'启动');
            }
             obj.stop=function(){
                console.log(this.ground+'停止');
            }
        }
        var car = creatCar();
        car.ground='奥迪';
        car.size='ccccc';
        car.color='red';
        car.start();
        car.stop();
    </script>
</body>
</html>